/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.oop.example.processing;

import java.util.Properties;

/**
 * Интерфейс описывает методы, необходимы для обработки строки перед ее
 * парсингом.
 *
 * @author -
 */
public interface Preparer {

    void setSource(String src);

    /**
     * Обрабатывает строку, полученную в результате чтения из исходного формата
     * и преобразует ее в пригодный для последующего парсинга формат
     *
     * @param string исходная строка
     * @return строка, полученная в результате обработки, поступающая на
     */
    void clean();

    /**
     * В исходной строке производит поиск помет и обрамляет их спецсимволами
     */
    void markLabels(Properties lblDict);

    /**
     * Проверяет строку на валидность: на отсутствие недопустимых символов, на
     * корректность формата и др.
     *
     * @return true - если проверка пройдена
     */
    boolean check() throws PrepareError;
    
    /**
     * Возвращает описание ошибки, если имеется, либо пустую строку.
     * @return 
     */
    String getErrorMessage();
    
    /**
     * Возвращает обработанную строку
     * @return 
     */
    String getString();
}
